package com.christian.singleton;

/**
 * 文件描述：单例模式，懒汉式：类加载时不加载实例对象，而是使用的时候在实例话对象。
 * 虽然达到了按需初始化的目的，单却带来了线程不安全的问题。
 *
 * @Author：wang
 * @Date：2020-02-26 15:38:22
 */
public class LazySingleton {

    /**
     * 声明对象
     */
    private static LazySingleton INSTANCE;

    /**
     * 私有化构造方法
     */
    private LazySingleton() {

    }

    /**
     * 获取实例化对象
     * 外部获取实例对象的唯一方式
     *
     * @return
     */
    public static LazySingleton getInstance() {
        if (INSTANCE == null) {
            INSTANCE = new LazySingleton();
        }

        return INSTANCE;
    }

    public static void main(String[] args) {
        LazySingleton instance1 = LazySingleton.getInstance();
        LazySingleton instance2 = LazySingleton.getInstance();

        System.out.println("两个对象实例是否相同：" + (instance1 == instance2));
    }
}
